uarti2cspi2 2.2.0
Loading...
Searching...
No Matches
uarti2cspi2.h File Reference

This file contains API for UART I2C SPI 2 Click Driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_i2c_master.h"
#include "drv_spi_master.h"
#include "spi_specifics.h"

Go to the source code of this file.

Data Structures

struct  uarti2cspi2_s
 UART I2C SPI 2 Click context object. More...
struct  uarti2cspi2_cfg_t
 UART I2C SPI 2 Click configuration object. More...

Macros

#define UARTI2CSPI2_REG_RHR   0x00
 UART I2C SPI 2 register list.
#define UARTI2CSPI2_REG_THR   0x00
#define UARTI2CSPI2_REG_IRQEN   0x01
#define UARTI2CSPI2_REG_IRQSTS   0x02
#define UARTI2CSPI2_REG_LSR_IRQEN   0x03
#define UARTI2CSPI2_REG_LSR_IRQSTS   0x04
#define UARTI2CSPI2_REG_SPCHR_IRQEN   0x05
#define UARTI2CSPI2_REG_SPCHR_IRQSTS   0x06
#define UARTI2CSPI2_REG_STS_IRQEN   0x07
#define UARTI2CSPI2_REG_STS_IRQSTS   0x08
#define UARTI2CSPI2_REG_MODE1   0x09
#define UARTI2CSPI2_REG_MODE2   0x0A
#define UARTI2CSPI2_REG_LCR   0x0B
#define UARTI2CSPI2_REG_RXTO   0x0C
#define UARTI2CSPI2_REG_HDPIXDELAY   0x0D
#define UARTI2CSPI2_REG_IRDA   0x0E
#define UARTI2CSPI2_REG_FLOWLVL   0x0F
#define UARTI2CSPI2_REG_FIFOTRIGLVL   0x10
#define UARTI2CSPI2_REG_TXFIFOLVL   0x11
#define UARTI2CSPI2_REG_RXFIFOLVL   0x12
#define UARTI2CSPI2_REG_FLOWCTRL   0x13
#define UARTI2CSPI2_REG_XON1   0x14
#define UARTI2CSPI2_REG_XON2   0x15
#define UARTI2CSPI2_REG_XOFF1   0x16
#define UARTI2CSPI2_REG_XOFF2   0x17
#define UARTI2CSPI2_REG_GPIOCFG   0x18
#define UARTI2CSPI2_REG_GPIODATA   0x19
#define UARTI2CSPI2_REG_PLLCFG   0x1A
#define UARTI2CSPI2_REG_BRGCFG   0x1B
#define UARTI2CSPI2_REG_BRGDIVLSB   0x1C
#define UARTI2CSPI2_REG_BRGDIVMSB   0x1D
#define UARTI2CSPI2_REG_CLKSRC   0x1E
#define UARTI2CSPI2_REG_GLOBAL_IRQ   0x1F
#define UARTI2CSPI2_REG_GLOBAL_CMD   0x1F
#define UARTI2CSPI2_REG_TXSYNCH   0x20
#define UARTI2CSPI2_REG_SYNCHDELAY1   0x21
#define UARTI2CSPI2_REG_SYNCHDELAY2   0x22
#define UARTI2CSPI2_REG_TIMER1   0x23
#define UARTI2CSPI2_REG_TIMER2   0x24
#define UARTI2CSPI2_REG_REVID   0x25
#define UARTI2CSPI2_IRQ_CTS   0x80
 UART I2C SPI 2 IRQEN/IRQSTS register setting.
#define UARTI2CSPI2_IRQ_RX_EMPTY   0x40
#define UARTI2CSPI2_IRQ_TX_FIFO_EMPTY   0x20
#define UARTI2CSPI2_IRQ_TX_TRG   0x10
#define UARTI2CSPI2_IRQ_RX_TRG   0x08
#define UARTI2CSPI2_IRQ_STS   0x04
#define UARTI2CSPI2_IRQ_SP_CHR   0x02
#define UARTI2CSPI2_IRQ_LSR_ERR   0x01
#define UARTI2CSPI2_LSR_IRQ_CTS   0x80
 UART I2C SPI 2 LSR_IRQEN/LSR_IRQSTS register setting.
#define UARTI2CSPI2_LSR_IRQ_NOISE_INT   0x20
#define UARTI2CSPI2_LSR_IRQ_R_BREAK   0x10
#define UARTI2CSPI2_LSR_IRQ_FRAME_ERR   0x08
#define UARTI2CSPI2_LSR_IRQ_PARITY   0x04
#define UARTI2CSPI2_LSR_IRQ_R_OVERR   0x02
#define UARTI2CSPI2_LSR_IRQ_R_TIMEOUT   0x01
#define UARTI2CSPI2_SPCHR_IRQ_MULTI_DROP   0x20
 UART I2C SPI 2 SPCHR_IRQEN/SPCHR_IRQSTS register setting.
#define UARTI2CSPI2_SPCHR_IRQ_BREAK   0x10
#define UARTI2CSPI2_SPCHR_IRQ_XOFF2   0x08
#define UARTI2CSPI2_SPCHR_IRQ_XOFF1   0x04
#define UARTI2CSPI2_SPCHR_IRQ_XON2   0x02
#define UARTI2CSPI2_SPCHR_IRQ_XON1   0x01
#define UARTI2CSPI2_STS_IRQ_TX_EMPTY   0x80
 UART I2C SPI 2 STS_IRQEN/STS_IRQSTS register setting.
#define UARTI2CSPI2_STS_IRQ_SLEEP   0x40
#define UARTI2CSPI2_STS_IRQ_CLK_READY   0x20
#define UARTI2CSPI2_STS_IRQ_GPI3   0x08
#define UARTI2CSPI2_STS_IRQ_GPI2   0x04
#define UARTI2CSPI2_STS_IRQ_GPI1   0x02
#define UARTI2CSPI2_STS_IRQ_GPI0   0x01
#define UARTI2CSPI2_MODE1_AUTO_SLEEP   0x40
 UART I2C SPI 2 MODE1 register setting.
#define UARTI2CSPI2_MODE1_FORCED_SLEEP   0x20
#define UARTI2CSPI2_MODE1_TRNSCV_CTRL   0x10
#define UARTI2CSPI2_MODE1_RTS_HIZ   0x08
#define UARTI2CSPI2_MODE1_TX_HIZ   0x04
#define UARTI2CSPI2_MODE1_TX_DISABLE   0x02
#define UARTI2CSPI2_MODE1_RX_DISABLE   0x01
#define UARTI2CSPI2_MODE2_ECHO_SUPRS   0x80
 UART I2C SPI 2 MODE2 register setting.
#define UARTI2CSPI2_MODE2_MULTI_DROP   0x40
#define UARTI2CSPI2_MODE2_LOOPBACK   0x20
#define UARTI2CSPI2_MODE2_SPECIAL_CHR   0x10
#define UARTI2CSPI2_MODE2_R_FIFO_EMPTY_INV   0x08
#define UARTI2CSPI2_MODE2_RX_TRIG_INV   0x04
#define UARTI2CSPI2_MODE2_FIFO_RST   0x02
#define UARTI2CSPI2_MODE2_RST   0x01
#define UARTI2CSPI2_LCR_RTS_BIT   0x80
 UART I2C SPI 2 LCR register setting.
#define UARTI2CSPI2_LCR_TX_BREAK   0x40
#define UARTI2CSPI2_LCR_FORCE_PARITY   0x20
#define UARTI2CSPI2_LCR_EVEN_PARITY   0x10
#define UARTI2CSPI2_LCR_PARITY_EN   0x08
#define UARTI2CSPI2_LCR_STOP_BITS_1   0x00
#define UARTI2CSPI2_LCR_STOP_BITS_2_OR_1_5   0x04
#define UARTI2CSPI2_LCR_STOP_BITS_MASK   0x04
#define UARTI2CSPI2_LCR_WORD_LENGTH_5   0x00
#define UARTI2CSPI2_LCR_WORD_LENGTH_6   0x01
#define UARTI2CSPI2_LCR_WORD_LENGTH_7   0x02
#define UARTI2CSPI2_LCR_WORD_LENGTH_8   0x03
#define UARTI2CSPI2_LCR_WORD_LENGTH_MASK   0x03
#define UARTI2CSPI2_IRDA_TX_INV   0x20
 UART I2C SPI 2 IRDA register setting.
#define UARTI2CSPI2_IRDA_RX_INV   0x10
#define UARTI2CSPI2_IRDA_MIR   0x08
#define UARTI2CSPI2_IRDA_SIR   0x02
#define UARTI2CSPI2_IRDA_IRDA_EN   0x01
#define UARTI2CSPI2_FLOWCTRL_SW_FLOW_NO_FLOW   0x00
 UART I2C SPI 2 FLOWCTRL register setting.
#define UARTI2CSPI2_FLOWCTRL_SW_FLOW_MASK   0xF0
#define UARTI2CSPI2_BRGCFG_4XMODE   0x20
 UART I2C SPI 2 BRGCFG register setting.
#define UARTI2CSPI2_BRGCFG_2XMODE   0x10
#define UARTI2CSPI2_BRGCFG_FRACT_MASK   0x0F
#define UARTI2CSPI2_CLKSRC_CLK_TO_RTS   0x80
 UART I2C SPI 2 CLKSRC register setting.
#define UARTI2CSPI2_CLKSRC_PLL_BYPASS   0x08
#define UARTI2CSPI2_CLKSRC_PLL_EN   0x04
#define UARTI2CSPI2_CLKSRC_CRYSTAL_EN   0x02
#define UARTI2CSPI2_GLOBAL_IRQ_IRQ1   0x02
 UART I2C SPI 2 GLOBAL_IRQ register setting.
#define UARTI2CSPI2_GLOBAL_IRQ_IRQ0   0x01
#define UARTI2CSPI2_GLOBAL_CMD_TX0   0xE0
 UART I2C SPI 2 GLOBAL_CMD register setting.
#define UARTI2CSPI2_GLOBAL_CMD_TX1   0xE1
#define UARTI2CSPI2_GLOBAL_CMD_TX2   0xE2
#define UARTI2CSPI2_GLOBAL_CMD_TX3   0xE3
#define UARTI2CSPI2_GLOBAL_CMD_TX4   0xE4
#define UARTI2CSPI2_GLOBAL_CMD_TX5   0xE5
#define UARTI2CSPI2_GLOBAL_CMD_TX6   0xE6
#define UARTI2CSPI2_GLOBAL_CMD_TX7   0xE7
#define UARTI2CSPI2_GLOBAL_CMD_TX8   0xE8
#define UARTI2CSPI2_GLOBAL_CMD_TX9   0xE9
#define UARTI2CSPI2_GLOBAL_CMD_TX10   0xEA
#define UARTI2CSPI2_GLOBAL_CMD_TX11   0xEB
#define UARTI2CSPI2_GLOBAL_CMD_TX12   0xEC
#define UARTI2CSPI2_GLOBAL_CMD_TX13   0xED
#define UARTI2CSPI2_GLOBAL_CMD_TX14   0xEE
#define UARTI2CSPI2_GLOBAL_CMD_TX15   0xEF
#define UARTI2CSPI2_GLOBAL_CMD_EN_EXT_REGMAP   0xCE
#define UARTI2CSPI2_GLOBAL_CMD_DIS_EXT_REGMAP   0xCD
#define UARTI2CSPI2_TXSYNCH_CLK_TO_GPIO   0x80
 UART I2C SPI 2 TXSYNCH register setting.
#define UARTI2CSPI2_TXSYNCH_TX_AUTO_DIS   0x40
#define UARTI2CSPI2_TXSYNCH_TRIG_DELAY   0x20
#define UARTI2CSPI2_TXSYNCH_SYNCH_EN   0x10
#define UARTI2CSPI2_TXSYNCH_TRIG_SEL3   0x08
#define UARTI2CSPI2_TXSYNCH_TRIG_SEL2   0x04
#define UARTI2CSPI2_TXSYNCH_TRIG_SEL1   0x02
#define UARTI2CSPI2_TXSYNCH_TRIG_SEL0   0x01
#define UARTI2CSPI2_REVID_MAJOR   0xC0
 UART I2C SPI 2 REVID register setting.
#define UARTI2CSPI2_REVID_MAJOR_MASK   0xF0
#define UARTI2CSPI2_REVID_MINOR_MASK   0x0F
#define UARTI2CSPI2_BAUDRATE_1200   1200ul
 UART I2C SPI 2 uart baud rate setting.
#define UARTI2CSPI2_BAUDRATE_2400   2400ul
#define UARTI2CSPI2_BAUDRATE_4800   4800ul
#define UARTI2CSPI2_BAUDRATE_9600   9600ul
#define UARTI2CSPI2_BAUDRATE_14400   14400ul
#define UARTI2CSPI2_BAUDRATE_19200   19200ul
#define UARTI2CSPI2_BAUDRATE_38400   38400ul
#define UARTI2CSPI2_BAUDRATE_57600   57600ul
#define UARTI2CSPI2_BAUDRATE_115200   115200ul
#define UARTI2CSPI2_BAUDRATE_230400   230400ul
#define UARTI2CSPI2_BAUDRATE_460800   460800ul
#define UARTI2CSPI2_CRYSTAL_FREQ   1843200ul
#define UARTI2CSPI2_UART_SEL_0   0
 UART I2C SPI 2 interface setting.
#define UARTI2CSPI2_UART_SEL_1   1
#define UARTI2CSPI2_SPI_UART_SEL_0   0x00
#define UARTI2CSPI2_SPI_UART_SEL_1   0x20
#define UARTI2CSPI2_SPI_UART_SEL_MASK   0x20
#define UARTI2CSPI2_SPI_REG_MASK   0x1F
#define UARTI2CSPI2_SPI_WRITE_BIT   0x80
#define UARTI2CSPI2_I2C_UART_SEL_0   0x20
#define UARTI2CSPI2_I2C_UART_SEL_1   0x10
#define UARTI2CSPI2_I2C_UART_SEL_MASK   0x30
#define UARTI2CSPI2_FIFO_LEN   128
#define UARTI2CSPI2_DEVICE_ADDRESS_A1A0_00   0x6C
 UART I2C SPI 2 device address setting.
#define UARTI2CSPI2_DEVICE_ADDRESS_A1A0_01   0x61
#define UARTI2CSPI2_DEVICE_ADDRESS_A1A0_10   0x64
#define UARTI2CSPI2_DEVICE_ADDRESS_A1A0_11   0x65
#define UARTI2CSPI2_SET_DATA_SAMPLE_EDGE   SET_SPI_DATA_SAMPLE_EDGE
 Data sample selection.
#define UARTI2CSPI2_SET_DATA_SAMPLE_MIDDLE   SET_SPI_DATA_SAMPLE_MIDDLE
#define UARTI2CSPI2_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping.

Typedefs

typedef err_t(* uarti2cspi2_master_io_t) (struct uarti2cspi2_s *, uint8_t, uint8_t *, uint8_t)
typedef struct uarti2cspi2_s uarti2cspi2_t
 UART I2C SPI 2 Click context object.

Enumerations

enum  uarti2cspi2_drv_t { UARTI2CSPI2_DRV_SEL_SPI , UARTI2CSPI2_DRV_SEL_I2C }
 UART I2C SPI 2 Click driver selector. More...
enum  uarti2cspi2_return_value_t { UARTI2CSPI2_OK = 0 , UARTI2CSPI2_ERROR = -1 }
 UART I2C SPI 2 Click return value data. More...

Functions

void uarti2cspi2_cfg_setup (uarti2cspi2_cfg_t *cfg)
 UART I2C SPI 2 configuration object setup function.
void uarti2cspi2_drv_interface_sel (uarti2cspi2_cfg_t *cfg, uarti2cspi2_drv_t drv_sel)
 UART I2C SPI 2 driver interface setup function.
err_t uarti2cspi2_init (uarti2cspi2_t *ctx, uarti2cspi2_cfg_t *cfg)
 UART I2C SPI 2 initialization function.
err_t uarti2cspi2_default_cfg (uarti2cspi2_t *ctx)
 UART I2C SPI 2 default configuration function.
err_t uarti2cspi2_write_regs (uarti2cspi2_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
 UART I2C SPI 2 write registers function.
err_t uarti2cspi2_read_regs (uarti2cspi2_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
 UART I2C SPI 2 read registers function.
err_t uarti2cspi2_write_reg (uarti2cspi2_t *ctx, uint8_t reg, uint8_t data_in)
 UART I2C SPI 2 write register function.
err_t uarti2cspi2_read_reg (uarti2cspi2_t *ctx, uint8_t reg, uint8_t *data_out)
 UART I2C SPI 2 read register function.
err_t uarti2cspi2_check_com (uarti2cspi2_t *ctx)
 UART I2C SPI 2 communication check function.
void uarti2cspi2_enable_device (uarti2cspi2_t *ctx)
 UART I2C SPI 2 enable device function.
void uarti2cspi2_disable_device (uarti2cspi2_t *ctx)
 UART I2C SPI 2 disable device function.
uint8_t uarti2cspi2_get_int_pin (uarti2cspi2_t *ctx)
 UART I2C SPI 2 get INT pin function.
void uarti2cspi2_select_uart_0 (uarti2cspi2_t *ctx)
 UART I2C SPI 2 select UART 0 function.
void uarti2cspi2_select_uart_1 (uarti2cspi2_t *ctx)
 UART I2C SPI 2 select UART 1 function.
err_t uarti2cspi2_set_baud_rate (uarti2cspi2_t *ctx, uint32_t baud_rate, uint32_t *act_baud_rate)
 UART I2C SPI 2 set baud rate function.
err_t uarti2cspi2_write_data (uarti2cspi2_t *ctx, uint8_t *data_in, uint8_t len)
 UART I2C SPI 2 write data function.
err_t uarti2cspi2_read_data (uarti2cspi2_t *ctx, uint8_t *data_out, uint8_t len)
 UART I2C SPI 2 read data function.

Detailed Description

This file contains API for UART I2C SPI 2 Click Driver.

Typedef Documentation

◆ uarti2cspi2_master_io_t

typedef err_t(* uarti2cspi2_master_io_t) (struct uarti2cspi2_s *, uint8_t, uint8_t *, uint8_t)

Driver serial interface.

◆ uarti2cspi2_t

typedef struct uarti2cspi2_s uarti2cspi2_t

UART I2C SPI 2 Click context object.

Context object definition of UART I2C SPI 2 Click driver.

Enumeration Type Documentation

◆ uarti2cspi2_drv_t

UART I2C SPI 2 Click driver selector.

Selects target driver interface of UART I2C SPI 2 Click driver.

Enumerator
UARTI2CSPI2_DRV_SEL_SPI 

SPI driver descriptor.

UARTI2CSPI2_DRV_SEL_I2C 

I2C driver descriptor.

◆ uarti2cspi2_return_value_t

UART I2C SPI 2 Click return value data.

Predefined enum values for driver return values.

Enumerator
UARTI2CSPI2_OK 
UARTI2CSPI2_ERROR